package com.booktrading.mapper;

import com.booktrading.model.Book;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface BookMapper {
    
    // 插入新书籍
    int insert(Book book);
    
    // 根据ID查询书籍
    Book selectById(Long id);
    
    // 查询卖家的书籍列表
    List<Book> selectBySellerId(Long sellerId);
    
    // 更新书籍信息
    int updateById(Book book);
    
    // 更新书籍状态
    int updateStatus(Long id, Integer status);
    
    // 增加浏览次数
    int incrementViews(Long id);
    
    // 查询所有在售书籍
    List<Book> selectOnSale();
    
    // 根据条件查询书籍
    List<Book> selectByCondition(Book condition);
    
    // 按类别查询书籍
    List<Book> selectByCategory(String category);
    
    // 搜索书籍
    List<Book> search(@Param("keyword") String keyword);
    
    // 按价格区间查询书籍
    List<Book> selectByPriceRange(@Param("minPrice") Double minPrice, @Param("maxPrice") Double maxPrice);
    
    // 按书籍状态查询
    List<Book> selectByStatus(Integer status);
    
    // 删除书籍
    int deleteById(Long id);
} 